New Crowdin updates - #327
Conversation
|
Caution Review failedThe pull request is closed. Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughLocalized string resources updated for Hebrew ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates Hebrew (Israeli) translations from Crowdin, translating several previously English strings into Hebrew. The changes primarily focus on translating plural forms for app selection and uninstall success messages, as well as a dialog title.
- Translates four plural resources from English to Hebrew (
num_selected_apps,success_uninstalled,success_reinstalled, and partial update toclear_selected_apps) - Updates terminology in one confirmation message from "אפליקציות" to "היישומים"
- Translates the "Uninstall Options" dialog title to Hebrew
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <string name="uninstall_app">Uninstall app</string> | ||
| <string name="reset_to_factory_version">Reset to factory version</string> |
There was a problem hiding this comment.
Incomplete translation: While line 64 ("uninstall_options_title") was translated to Hebrew, these related strings remain in English. For a complete localization experience, these strings should also be translated to Hebrew to match the rest of the file.
| <string name="uninstall_app">Uninstall app</string> | |
| <string name="reset_to_factory_version">Reset to factory version</string> | |
| <string name="uninstall_app">הסר התקנת יישום</string> | |
| <string name="reset_to_factory_version">אפס לגרסת היצרן</string> |
There was a problem hiding this comment.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-iw-rIL/strings.xml(3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Upload results
- GitHub Check: 🤖 Validate Android Build
🔇 Additional comments (2)
app/src/main/res/values-iw-rIL/strings.xml (2)
5-5: ✓ Confirmation message update looks good.The Hebrew translation correctly conveys the intent of uninstalling multiple apps.
64-64: ✓ Uninstall options title correctly translated.The Hebrew translation replaces the English text appropriately.
| <plurals name="num_selected_apps"> | ||
| <item quantity="one">%d app selected</item> | ||
| <item quantity="two">%d apps selected</item> | ||
| <item quantity="many">%d apps selected</item> | ||
| <item quantity="other">%d apps selected</item> | ||
| <item quantity="one">יישום %d נבחר</item> | ||
| <item quantity="two">%d יישומים נבחרו</item> | ||
| <item quantity="many">%d יישומים נבחרו</item> | ||
| <item quantity="other">%d אפליקציות נבחרו</item> | ||
| </plurals> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Find all strings.xml files in the repository
find . -name "strings.xml" -type f | head -20Repository: samolego/Canta
Length of output: 949
🏁 Script executed:
# Look at the complete Hebrew strings file to see context
cat -n app/src/main/res/values-iw-rIL/strings.xml | head -50Repository: samolego/Canta
Length of output: 3232
🏁 Script executed:
# Check for other plural resources in the Hebrew file
rg -n "plurals name=" app/src/main/res/values-iw-rIL/strings.xmlRepository: samolego/Canta
Length of output: 231
🏁 Script executed:
# Compare with default English locale plurals
fd "values/strings.xml" | xargs grep -A 5 "plurals name=\"num_selected_apps\"" 2>/dev/null | head -30Repository: samolego/Canta
Length of output: 40
🏁 Script executed:
# Find default values/strings.xml
fd "values/strings.xml$" | xargs grep -A 5 "plurals name=\"num_selected_apps\"" 2>/dev/nullRepository: samolego/Canta
Length of output: 42
🏁 Script executed:
# Check the generic Hebrew locale (values-he)
cat -n app/src/main/res/values-he/strings.xml | sed -n '20,45p'Repository: samolego/Canta
Length of output: 1416
🏁 Script executed:
# Check if there are any comments or documentation about plural handling
rg -i "plural|hebrew|iw" README.md CONTRIBUTING.md 2>/dev/null || echo "No docs found"Repository: samolego/Canta
Length of output: 3231
Address placeholder position and terminology inconsistency in num_selected_apps plural forms.
The num_selected_apps resource mixes placeholder positions:
oneform:"יישום %d נבחר"(placeholder after noun)two/many/otherforms:"%d יישומים/אפליקציות"(placeholder before noun)
Additionally, terminology is inconsistent—the one form uses "יישום" while the other form uses "אפליקציות" instead of the "יישומים" used in two and many forms. Standardize both placeholder position and terminology across all quantities for consistent display.
🤖 Prompt for AI Agents
In app/src/main/res/values-iw-rIL/strings.xml around lines 26-31, the plurals
for num_selected_apps mix placeholder position and use inconsistent terms;
change all forms so the numeric placeholder appears before the noun and use the
same Hebrew term for the app plural (יישומים) across quantities—update the "one"
form to use the placeholder before the noun and replace "אפליקציות" in the
"other" form with "יישומים" so all items follow the same "%d יישומים" pattern
(adjust singular/plural wording appropriately for the one/two/many/other cases).
| <plurals name="success_uninstalled"> | ||
| <item quantity="one">You have successfully uninstalled %d app!</item> | ||
| <item quantity="two">You have successfully uninstalled %d apps!</item> | ||
| <item quantity="many">You have successfully uninstalled %d apps!</item> | ||
| <item quantity="other">You have successfully uninstalled %d apps!</item> | ||
| <item quantity="one">הסרת בהצלחה את ההתקנה של אפליקציה %d!</item> | ||
| <item quantity="two">הסרת בהצלחה %d אפליקציות!</item> | ||
| <item quantity="many">הסרת בהצלחה %d אפליקציות!</item> | ||
| <item quantity="other">הסרת בהצלחה %d אפליקציות!</item> | ||
| </plurals> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's examine the current file
cat -n app/src/main/res/values-iw-rIL/strings.xml | head -50Repository: samolego/Canta
Length of output: 3232
🏁 Script executed:
# Check for other locale versions of this string to see the pattern
find . -name "strings.xml" -type f | head -20Repository: samolego/Canta
Length of output: 949
🏁 Script executed:
# Look at the success_uninstalled string in different locales
rg -A 5 'plurals name="success_uninstalled"' --type xmlRepository: samolego/Canta
Length of output: 25886
🏁 Script executed:
# Check the success_reinstalled pattern and other similar strings in Hebrew
rg -A 5 'success_reinstalled|clear_selected_apps|num_selected_apps' app/src/main/res/values-iw-rIL/strings.xmlRepository: samolego/Canta
Length of output: 919
🏁 Script executed:
# Let me also check if there are any other Hebrew-related strings files
ls -la app/src/main/res/values-*he* 2>/dev/null || echo "Checking Hebrew variants..."
fd 'values.*he' app/src/main/res/Repository: samolego/Canta
Length of output: 261
Fix redundant phrasing in Hebrew singular form.
The success_uninstalled plural one form has grammatical redundancy: "הסרת בהצלחה את ההתקנה של אפליקציה %d!" combines "הסרת" (removed) with "את ההתקנה" (the installation), creating a redundant construction. Align with the success_reinstalled pattern: "הסרת בהצלחה אפליקציה %d!" (Successfully uninstalled application %d!).
🤖 Prompt for AI Agents
In app/src/main/res/values-iw-rIL/strings.xml around lines 32 to 37, the Hebrew
plural "one" for success_uninstalled uses a redundant phrasing "הסרת בהצלחה את
ההתקנה של אפליקציה %d!"—replace it with the concise form used elsewhere "הסרת
בהצלחה אפליקציה %d!" to remove the extra "את ההתקנה של" and match the
success_reinstalled pattern; update only the singular <item quantity="one">
value accordingly.
| <plurals name="success_reinstalled"> | ||
| <item quantity="one">You have successfully reinstalled %d app!</item> | ||
| <item quantity="two">You have successfully reinstalled %d apps!</item> | ||
| <item quantity="many">You have successfully reinstalled %d apps!</item> | ||
| <item quantity="other">You have successfully reinstalled %d apps!</item> | ||
| <item quantity="one">התקנת מחדש בהצלחה אפליקציה %d!</item> | ||
| <item quantity="two">התקנת מחדש בהצלחה %d אפליקציות!</item> | ||
| <item quantity="many">התקנת מחדש בהצלחה %d אפליקציות!</item> | ||
| <item quantity="other">התקנת מחדש בהצלחה %d אפליקציות!</item> | ||
| </plurals> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n app/src/main/res/values-iw-rIL/strings.xml | sed -n '1,100p'Repository: samolego/Canta
Length of output: 7417
🌐 Web query:
Hebrew grammar number agreement placeholder %d singular
💡 Result:
Use the singular Hebrew form only when the count == 1. For localization you should handle these plural categories:
- n == 1 → use singular (and pick the correct gendered singular form of the noun). [1][2]
- n == 2 → use the dual/two form where applicable (Hebrew has special forms for “two”). [2]
- all other values (0, 3, 4, … and >10) → use the plural/“other” form. (In practice 0 uses plural in Modern Hebrew; CLDR/ICU maps Hebrew to the plural categories one, two, other.) [3][4]
Implementation notes:
- Do not assume 0 → singular; treat 0 as plural/other. [3]
- Choose masculine vs. feminine wording for the noun/adjective based on the noun’s gender when rendering the singular and plural forms. [2]
- Use an i18n pluralization system (ICU/CLDR or gettext/ICU message syntax) that supports Hebrew’s “one/two/other” categories rather than a naive "%d item(s)". [3][4]
Sources: Gesenius on Hebrew numerals and agreement (grammar details). [2] Unicode/CLDR (ICU) plural rules and Hebrew categories for localization. [3][4]
References
- Gesenius’ Hebrew Grammar — numerals and agreement.
- Gesenius (syntax of numerals / agreement).
- Unicode LDML / CLDR plural rules (Hebrew).
- Notes from localization communities (ICU/CLDR changes to Hebrew plurals).
🌐 Web query:
Android plurals quantity="one" how %d substitution works
💡 Result:
Short answer: quantity="one" is the plural form chosen by Android when the supplied count maps to the locale’s “one” rule (not necessarily only the numeric value 1 in all languages). If the plural string contains a numeric format placeholder (e.g. %d or %1$d), you must pass the count to getQuantityString (or pluralStringResource) twice: the first count selects the plural form, the second is used to replace the %d in the returned string.
Key points:
- Define with at least "one" and "other". Put %d (or %1$d) inside the text when you want the number shown. [1]
- Usage (Java/Kotlin): resources.getQuantityString(R.plurals.name, count, count) — first arg selects plural, second formats the %d. In Compose: pluralStringResource(R.plurals.name, quantity, quantity). [1][2]
- Prefer positional specifiers like %1$d when strings may include multiple parameters or translators reorder phrases. [1][2]
Sources: Android developers docs on string plurals and Compose resources. [1][2]
Hebrew number agreement violation: %d placement and grammar incorrect in singular form.
The singular form "התקנת מחדש בהצלחה אפליקציה %d!" violates Hebrew number agreement rules. When quantity="one" is selected (count = 1), the placeholder becomes "התקנת מחדש בהצלחה אפליקציה 1!" — placing the number after the noun. Hebrew requires numbers to precede the noun for proper agreement. This should be restructured to "התקנת מחדש בהצלחה 1 אפליקציה!" or similar to follow Hebrew grammar conventions. The same issue exists in success_uninstalled.
🤖 Prompt for AI Agents
In app/src/main/res/values-iw-rIL/strings.xml around lines 38 to 43, the Hebrew
plural entries put the numeric placeholder %d after the noun for the singular
form which violates Hebrew grammar (number must precede the noun); update the
singular item(s) so the %d appears before the noun and rewrite the phrase for
proper agreement (e.g., move "%d" before "אפליקציה" and adjust word
order/inflection accordingly), and apply the same fix to the parallel
success_uninstalled plural entries to ensure consistent Hebrew number placement
and agreement.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (5)
app/src/main/res/values-iw-rIL/strings.xml (5)
27-30: Placeholder position inconsistency innum_selected_appsplural forms.In Hebrew, the numeral goes before the noun, but line 27 places the placeholder after the noun (
"יישום %d נבחר") while lines 28–30 place it before ("%d יישומים נבחרו"). For consistency and proper Hebrew grammar, restructure line 27 to match the pattern in the other forms:- <item quantity="one">יישום %d נבחר</item> + <item quantity="one">%d יישום נבחר</item>
33-33: Redundant phrasing insuccess_uninstalledsingular form.Line 33 contains the redundant phrase "הסרת בהצלחה את ההתקנה של יישום %d!" which literally translates to "Successfully removed the installation of an app %d!" The phrase "את ההתקנה של" (the installation of) is redundant when paired with the verb "הסרת" (removed). Simplify to align with the pattern used in the
success_reinstalledresource.- <item quantity="one">הסרת בהצלחה את ההתקנה של יישום %d!</item> + <item quantity="one">הסרת בהצלחה יישום %d!</item>
33-36: Hebrew number agreement violation insuccess_uninstalledsingular form.In Hebrew, the numeral must go before the noun, but the current form places it after:
"הסרת בהצלחה יישום %d!"(when corrected from the redundancy above). The placeholder should precede the noun for proper agreement:- <item quantity="one">הסרת בהצלחה את ההתקנה של יישום %d!</item> + <item quantity="one">הסרת בהצלחה %d יישום!</item>
39-42: Hebrew number agreement violation insuccess_reinstalledsingular form.In Hebrew, the numeral must go before the noun, but line 39 places it after:
"התקנת מחדש בהצלחה יישום %d!". Restructure to put the placeholder before the noun for proper Hebrew grammar:- <item quantity="one">התקנת מחדש בהצלחה יישום %d!</item> + <item quantity="one">התקנת מחדש בהצלחה %d יישום!</item>
5-5: Terminology inconsistency: "היישומים" vs. "אפליקציות" across the file.Line 5 uses "היישומים" (the apps) in the uninstall confirmation message, but other success messages (lines 27–42) and throughout the file use "אפליקציות" (apps) or "יישומים" (apps). Previous review comments flagged this inconsistency. For a cohesive user experience, standardize terminology throughout the file. Consider whether this line should also use "האפליקציות" to maintain consistency.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-iw-rIL/strings.xml(3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: 🤖 Validate Android Build
🔇 Additional comments (1)
app/src/main/res/values-iw-rIL/strings.xml (1)
55-55: Localization completeness improved; new Hebrew translations added.The PR significantly improves localization coverage by translating previously English-only strings (lines 64–122) to Hebrew, including preset management, Shizuku integration, advanced settings, and donation-related text. This enhancement addresses the incomplete translation issue flagged in previous reviews. The translations appear accurate and follow consistent terminology patterns.
Also applies to: 64-122
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
app/src/main/res/values-ja-rJP/strings.xml (1)
20-31: Translate plural strings to Japanese.Four plural resources remain in English while the rest of the file uses Japanese translations:
clear_selected_apps(line 20)num_selected_apps(line 23)success_uninstalled(line 26)success_reinstalled(line 29)Japanese users will see these messages in English, creating an inconsistent experience.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-ja-rJP/strings.xml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: 🤖 Validate Android Build
🔇 Additional comments (1)
app/src/main/res/values-ja-rJP/strings.xml (1)
16-19: LGTM! Japanese translations successfully updated.The Japanese translations have been properly added/updated for various UI strings including logs, settings, presets management, and related functionality. The XML structure is valid and the UTF-8 encoding is appropriate for Japanese text.
Also applies to: 32-34, 36-37, 39-43, 49-49, 52-53, 55-55, 57-57, 62-63, 65-65, 70-74, 77-77, 79-80
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/src/main/res/values-da-rDK/strings.xml(2 hunks)
🔇 Additional comments (1)
app/src/main/res/values-da-rDK/strings.xml (1)
24-35: LGTM! Plural forms correctly localized.The plural forms maintain correct placeholder usage (%d) and appropriately distinguish between singular and plural cases in Danish.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.